import { getToken } from '@/utils/storage';
import type { IEditorConfig } from '@wangeditor/editor';

export function useEditorConfig() {
  type InsertFnType = (url: string, alt: string, href: string) => void;
  const editorConfig: Partial<IEditorConfig> = {
    placeholder: '请输入内容...',
    MENU_CONF: {
      uploadImage: {
        server: '/api/file/upload',
        // form-data fieldName ，默认值 'wangeditor-uploaded-image'
        fieldName: 'file',
        // 单个文件的最大体积限制，默认为 2M
        maxFileSize: 100 * 1024 * 1024, // 100M
        // 最多可上传几个文件，默认为 100
        maxNumberOfFiles: 100,
        // 选择文件时的类型限制，默认为 ['image/*'] 。如不想限制，则设置为 []
        allowedFileTypes: ['image/*'],
        // 将 meta 拼接到 url 参数中，默认 false
        metaWithUrl: false,
        // 自定义增加 http  header
        headers: {
          Authorization: getToken(),
        },
        // 跨域是否传递 cookie ，默认为 false
        withCredentials: true,
        // 超时时间，默认为 10 秒
        timeout: 5 * 1000, // 5 秒
        customInsert(res: any, insertFn: InsertFnType) {
          // TS 语法
          // res 即服务端的返回结果

          // 从 res 中找到 url alt href ，然后插入图片
          insertFn(res.data?.url, res.data?.name, '');
        },
      },
    },
  };
  return { editorConfig };
}
